// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
}) // 使用当前云环境

// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()
  const openid = wxContext.OPENID
  const {
    touser, // openid of user
    page,
    amount,
    title,
    remark,
    datetime,
    addr
  } = event

  try {
    const result = await cloud.openapi.subscribeMessage.send({
      touser, // 要推送给那个用户
      page, // 要跳转到明那个小程序页面
      data: { //推送的内容
        amount4: { // 订单金额
          value: Number(amount).toFixed(2)
        },
        thing6: { // 商品名称
          value: title ? title.substr(0, 20) : '新的消息提示'
        },
        thing5: { // 备注
          value: remark ? remark.substr(0, 20) : '(无)'
        },
        time8: { // 下单时间
          value: yearMonthDay(datetime)
        },
        thing9: { // 收货地址
          value: addr ? addr.substr(0, 20) : '(无)'
        }
      },
      templateId: 'Yng-O0DKbUJWV7C4hM4Hbmrnk8tE_goB09wTNFWscrg'
    })
    return result
  } catch (err) {
    console.error(err)
    return err
  }
}

function yearMonthDay(datetime) {
  const date = new Date(Number(datetime))
  const year = date.getFullYear(); // 获取完整的年份(4位,1970)
  const month = prefixZero(date.getMonth() + 1); // 获取月份(0-11,0代表1月)
  const day = prefixZero(date.getDate()); // 获取日(1-31)
  return `${year}-${month}-${day}`
}

function prefixZero(num) {
  return (num < 10 ? ('0' + num) : num)
}